#!/bin/bash
# pinoja ylläpidetään matriiseissa ja matriiseja voi olla kuinka monta vaan. BASH:issa matriiseja voi aloittaa käyttämään kertomatta matriisin aloituksesta.
function pinoon () { 
[[ ${2#[@]} -eq 0 ]] && let $2=1 # kun pino on tyhjä esimerkiksi pinoa aloitettaessa asetetaan sen pino-osoitin arvoon 1
let $2[$2]=$1                    # pino-osoittimen osoittama pinon jäsen asetetaan siihen arvoon mikä on annettu 
let $2++ ;}                      # pino-osoitinta askelletaan

function pinosta () {
let $2--
let $1=$2[$2] ;}

# toimimisen varmistamiseksi tein seuraavankaltaisia kutsuja ja tarkistamalla että tuloste vastasi sisäänmenoa. 
pinoon +77777777777777777 yksi
pinoon 1 kaksi
pinoon -1 kolme
pinoon 2 kaksi
pinoon -66666666666666666 yksi
pinoon -3 kaksi
pinoon -2 kolme
pinoon 333 yksi
pinosta arvo kolme
echo $arvo
pinosta arvo yksi
echo $arvo
pinosta arvo yksi
echo $arvo
pinosta arvo kolme
echo $arvo
pinosta arvo yksi
echo $arvo
pinosta arvo kaksi
echo $arvo 

